import { GLOBAL_CONFIG } from '../config';
import { API_PATHS, API_BASE_URL } from '../services/apiConfig';

/**
 * 处理图片URL，确保通过代理服务加载
 * @param imageUrl 原始图片URL
 * @returns 代理后的图片URL
 */
export const processImageUrl = (imageUrl?: string): string => {
  // 如果没有提供图片URL，返回默认图片
  if (!imageUrl) {
    return GLOBAL_CONFIG.DEFAULT_IMAGE_PATH;
  }
  
  // 如果已经是通过代理的URL，直接返回
  if (imageUrl.includes(API_BASE_URL + API_PATHS.DOUBAN.IMAGE_PROXY)) {
    return imageUrl;
  }
  
  // 如果是本地路径，直接返回
  if (imageUrl.startsWith('/')) {
    return imageUrl;
  }
  
  // 如果是HTTP/HTTPS URL，通过代理加载
  if (imageUrl.includes('http')) {
    // 使用后端的图片代理接口
    return `${API_BASE_URL}${API_PATHS.DOUBAN.IMAGE_PROXY}?url=${encodeURIComponent(imageUrl)}`;
  }
  
  // 其他情况返回默认图片
  return GLOBAL_CONFIG.DEFAULT_IMAGE_PATH;
};

/**
 * 从代理URL中提取原始图片URL
 * @param proxyUrl 代理后的图片URL
 * @returns 原始图片URL，如果无法提取则返回原始URL
 */
export const extractOriginalImageUrl = (proxyUrl?: string): string => {
  if (!proxyUrl) {
    return '';
  }
  
  // 检查是否是代理后的URL
  if (!proxyUrl.includes(API_BASE_URL + API_PATHS.DOUBAN.IMAGE_PROXY)) {
    return proxyUrl;
  }
  
  try {
    // 尝试提取URL参数
    const urlParams = new URLSearchParams(proxyUrl.split('?')[1]);
    const originalUrl = urlParams.get('url');
    return originalUrl || proxyUrl;
  } catch (error) {
    console.error('提取原始图片URL失败:', error);
    return proxyUrl;
  }
};